// pages/category/index.js
import { request } from "../../request/index.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    leftMenuList:[],
    rightContent:[],
    //active menu item
    currentIndex:0,
    //右侧内容的滚动条距离顶部的距离
    scrollTop:0

  },

  //接口返回数据
  Cates:[],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /**
     * 缓存技术
     * 1 先判断本地有没有旧数据
     *  {time.Date.now(),data[...]}
     * 2 如果没有则直接发送新的请求
     * 3 如果有同时旧数据也没有过期，则使用本地存储的旧数据
     */

    // 获取本地存储数据
    const Cates=wx.getStorageSync("cates");
    if(!Cates){
      //无旧数据
      this.getCates();
    }else{
      //有旧数据 定义过期时间 60s
      if(Date.now()-Cates.time>1000*60){
        //过期，重新发送请求
        this.getCates();
      }else{
        //可以使用旧数据
        this.Cates=Cates.data;
        //构造左侧大菜单数据
        let leftMenuList=this.Cates.map(v=>v.cat_name);
        //构造右侧商品数据
        let rightContent=this.Cates[0].children;

        this.setData({
          leftMenuList,
          rightContent
        })
      }

    }
  },

  //获取分类数据
  async getCates(){
    // request({
    //   url:"/categories"
    // }).then(res=>{
    //   this.Cates=res.data.message;

    //   //把接口数据存入到本地存储中
    //   wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})

    //   //构造左侧大菜单数据
    //   let leftMenuList=this.Cates.map(v=>v.cat_name);
    //   //构造右侧商品数据
    //   let rightContent=this.Cates[0].children;

    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })

    //使用es7的 async await 来发送请求
    const res=await request({url:"/categories"});
    this.Cates=res;

    //把接口数据存入到本地存储中
    wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})

    //构造左侧大菜单数据
    let leftMenuList=this.Cates.map(v=>v.cat_name);
    //构造右侧商品数据
    let rightContent=this.Cates[0].children;

    this.setData({
      leftMenuList,
      rightContent
    })
  },

  //左侧菜单的点击事件
  handleItemTap(e){
    const {index}=e.currentTarget.dataset;
    let rightContent=this.Cates[index].children;
    this.setData({
      currentIndex:index,
      rightContent,
    //重新设置 scrollTop=0
      scrollTop:0
    })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})